package com.aaa.doctor.service;

import com.aaa.doctor.dto.RegPatDto;
import com.aaa.doctor.vo.RegistrationVo;
import com.aaa.entity.CareHistory;
import com.aaa.entity.Registration;
import com.aaa.vo.Result;
import com.baomidou.mybatisplus.core.metadata.IPage;

import java.util.List;

/**
 * @author MuChengGuo
 * @date 2023/3/26 18:24
 * Description: TODO
 **/
public interface RegistrationServer {
    /**
     * 条件查询挂号列表&分页
     *
     * @param registrationVo
     * @return
     */
    Result<IPage<Registration>> getRegistrationList(Integer current, Integer size, RegistrationVo registrationVo);

    Result<String> getCollect(String registrationId);

    Result<String> getReturn(String registrationId);

    Result<String> getInvalid(String registrationId);

    Result<List<Registration>> queryToBeSeenRegistration(String schedulingType);

    Result<List<Registration>> handleVisit(String registrationId);

    Result<List<Registration>> queryVisitingRegistration(String schedulingType);

    Result<List<Registration>> queryVisitCompletedRegistration(String schedulingType);

    /**
     * 门诊挂号 - 挂号收费
     *
     * @param regPatDto
     * @return
     */
    Result<String> addRegistration(RegPatDto regPatDto);

    /**
     * 挂号收费
     *
     * @param registrationId
     * @return
     */
    Result<String> collectFee(String registrationId);

    /**
     * 完成就诊
     *
     * @param registrationId
     * @return
     */
    Result<String> visitComplete(String registrationId);

    /**
     * 当前号数
     *
     * @param deptId
     * @return
     */
    Result<Integer> getRegistrationNumber(Long deptId);

    /**
     * 根据挂号单ID查询对应的病历信息
     *
     * @param regId
     * @return
     */
    Result<CareHistory> getCareHistoryByRegId(String regId);
}
